package com.sinog.biz.service.business;

import com.sinog.core.domain.PrisonerMain;
import com.sinog.core.model.UserDTO;
import com.sinog.core.utilbean.Result;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

/**
 * @desc 社会关系
 * @author -
 * @date -
 */
@RestController
public interface SocialRelationsService {

    /**
     * 保存未成年子女信息
     * @param data data
     * @param user user
     * @return Result
     */
    @PostMapping("/azbj/noadult/save")
    Result saveNoAdult(@RequestParam("data") String data,@RequestBody UserDTO user);

    /**
     * 更新未成年子女信息
     * @param data data
     * @param user user
     * @return Result
     */
    @PostMapping("/azbj/noadult/edit")
    Result updateNoAdult(@RequestParam("data") String data,@RequestBody UserDTO user);

    /**
     * 更新未成年子女信息excel
     * @param data data
     * @param user user
     * @return Result
     */
    @PostMapping("/azbj/noadult/editexcel")
    Result updateNoAdultExcel(@RequestParam("data") String data,@RequestBody UserDTO user);

    /**
     * 预安置人员信息录入 - 获取未成年子女列表信息
     * @param pageIndex pageIndex
     * @param pageSize pageSize
     * @param querykey querykey
     * @return String
     */
    @RequestMapping("/azbj/noadult/list")
    String getNoAdultList(
            @RequestParam("pageIndex") Integer pageIndex,
            @RequestParam("pageSize") Integer pageSize,
            @RequestParam(required = false, defaultValue = "-1") String querykey);

    /**
     * 预安置人员信息录入 - 获取未成年子女列表信息excel
     * @param pageIndex pageIndex
     * @param pageSize pageSize
     * @param querykey querykey
     * @return String
     */
    @RequestMapping("/azbj/noadult/listexcel")
    String getNoAdultListExcel(
            @RequestParam("pageIndex") Integer pageIndex,
            @RequestParam("pageSize") Integer pageSize,
            @RequestParam(required = false, defaultValue = "-1") String querykey);

    /**
     * 根据id获取未成年子女的信息
     * @param id id
     * @return String
     */
    @PostMapping("/azbj/social/noadult")
    String getInfoById(@RequestParam("id") String id);

    /**
     * 根据id获取未成年子女的信息excel
     * @param id id
     * @return String
     */
    @PostMapping("/azbj/social/noadultexcel")
    String getInfoByIdExcel(@RequestParam("id") String id);

    /**
     * 删除未成年子女信息（逻辑删除）
     * @param id id
     * @return Result
     */
    @PostMapping("/azbj/social/deletenoinfo")
    Result deleteNoAultById(@RequestParam("id") String id);

    /**
     * 删除未成年子女信息（逻辑删除）excel
     * @param id id
     * @return Result
     */
    @PostMapping("/azbj/social/deletenoinfoexcel")
    Result deleteNoAultByIdExcel(@RequestParam("id") String id);

    /**
     * 添加社会关系
     * @param data data
     * @param user user
     * @return Result
     */
    @PostMapping("/azbj/srinfo/add")
    Result saveSrInfo(@RequestParam("data") String data,@RequestBody UserDTO user);

    /**
     * 更新社会关系
     * @param data data
     * @param user user
     * @return Result
     */
    @PostMapping("/azbj/srinfo/updata")
    Result updataSrInfo(@RequestParam("data") String data,@RequestBody UserDTO user);

    /**
     * 更新社会关系excel
     * @param data data
     * @param user user
     * @return Result
     */
    @PostMapping("/azbj/srinfo/updataexcel")
    Result updataSrInfoExcel(@RequestParam("data") String data,@RequestBody UserDTO user);

    /**
     * 预安置人员信息录入 - 社会关系 - 配偶、父母或其他 - 列表
     * @param pageIndex pageIndex
     * @param pageSize pageSize
     * @param priNum priNum
     * @return String
     */
    @PostMapping("/azbj/srinfl/list")
    String getSrList(
            @RequestParam("pageIndex") Integer pageIndex,
            @RequestParam("pageSize") Integer pageSize,
            @RequestParam(required = false, defaultValue = "-1") String priNum);

    /**
     * 预安置人员信息录入 - 社会关系 - 配偶、父母或其他 - 列表excel
     * @param pageIndex pageIndex
     * @param pageSize pageSize
     * @param priNum priNum
     * @return String
     */
    @PostMapping("/azbj/srinfl/listexcel")
    String getSrListExcel(
            @RequestParam("pageIndex") Integer pageIndex,
            @RequestParam("pageSize") Integer pageSize,
            @RequestParam(required = false, defaultValue = "-1") String priNum);

    /**
     * 根据ID查询社会关系 - 配偶、父母或其他信息
     * @param id id
     * @return String
     */
    @PostMapping("/azbj/social-srinfo/echo")
    String getSrInfoById(@RequestParam(required = false, defaultValue = "-1") String id);

    /**
     * 根据ID查询社会关系 - 配偶、父母或其他信息
     * @param id id
     * @return String
     */
    @PostMapping("/azbj/social-srinfo/echoexcel")
    String getSrInfoByIdExcel(@RequestParam(required = false, defaultValue = "-1") String id);

    /**
     * 删除社会关系信息（逻辑删除）
     * @param id id
     * @param priNum priNum
     * @return Result
     */
    @PostMapping("/azbj/social-removesr")
    Result deleteSrInfo(
            @RequestParam(required = false, defaultValue = "-1") String id,@RequestParam("priNum") String priNum);

    /**
     * 删除社会关系信息（逻辑删除）excel
     * @param id id
     * @param priNum priNum
     * @return Result
     */
    @PostMapping("/azbj/social-removesrexcel")
    Result deleteSrInfoExcel(
            @RequestParam(required = false, defaultValue = "-1") String id,@RequestParam("priNum") String priNum);

    /**
     * 获取基本信息
     * @param priNum priNum
     * @return PrisonerMain
     */
    @PostMapping("/azbj/social/baseinfo")
    PrisonerMain getPriMainByPrinum(@RequestParam("priNum") String priNum);
}